﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using isct.escada.domain.configmodule.Entities;
using isct.escada.domain.core;

namespace isct.escada.domain.configmodule.Repositories
{
    public interface IVariableRepository:IRepository<Variable>
    {
        IEnumerable<Variable> FindVariablesByServidor(Servidor prmServer);
        
        IEnumerable<Variable> FindVariablesByGrupo(Grupo prmGrupo);
        
        IEnumerable<Variable> FindVariablesByTipo(ETiposVariables prmTipo);

        IEnumerable<Variable> FindVariablesByObjeto(Objeto prmObjeto);

        IEnumerable<Variable> GetAllElementsComplete();

        IEnumerable<Variable> GetAllCompleteFilteredElements(Expression<Func<Variable, bool>> filter);
    }
}
